/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * MyCheckItemPropertiesClass.java
 *
 * Copyright 2011 Universidad Francisco de Paula Santander (UFPS).
 * Todos los Derechos Reservados.
 * Creado el 2/03/2011, 11:32:08 PM
 */

package com.ufps.cuatro.util.model;

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * <i><b>MyCheckItemPropertiesClass:</b></i> @DefinicionClase
 * @author Carlos A. Torres C. - Dolly E. Guerrero. <https://code.google.com/p/tesis4dor/>
 * @version 1.0 2/03/2011
 */
public class MyCheckItem implements Cloneable, Comparable{
    private static final long serialVersionUID = 758171764186697336L;
    protected String  label;    
    protected boolean isSelected = false; 
    
    /** Constructor por Defecto. 
     *  Crea un nuevo objeto MyCheckItemPropertiesClass 
     * @param label @DefinicionParametro
     */
    public MyCheckItem(){
        this.label = "";
    }

    /** Constructor por Defecto. 
     *  Crea un nuevo objeto MyCheckItemPropertiesClass 
     * @param label @DefinicionParametro
     */
    public MyCheckItem(String label){
        this.label = label;
    }
    
    /**
     * @DefinicionMetodo
     * @return @DefinicionReturn
     */
    public boolean isSelected(){
        return isSelected;
    }

    /**
     * @DefinicionMetodo
     * @param isSelected @DefinicionParametro
     */
    public void setSelected(boolean isSelected){
        this.isSelected = isSelected;
    }

    @Override
    public String toString(){
        return label;
    }

    @Override
    public Object clone() {
        MyCheckItem objClon = null;
        try {
            //Primero se Clona la Referencia Local
            objClon = (MyCheckItem) super.clone();
        } catch (CloneNotSupportedException ex) {
            Logger.getLogger(MyCheckItem.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Ahora se hace la Clonación Profunda                
        if(this.label != null){
            ((MyCheckItem)objClon).label = new String(this.label.toCharArray());
        }
        return objClon;
    }      

    public int compareTo(Object o) {
        try{
            MyCheckItem obj = (MyCheckItem) o;
            return this.label.compareTo(obj.label);
        }catch(java.lang.Exception ex){}
        return 0;
    }
    
    

}

